<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
	<script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
	<meta charset="utf-8">
	<style type="text/css">
		table{width:80%}
	</style>
</head>
<body>
<div class="dt">PHP语言简介</div>
<ul>
	<div class="showimg ltable">PHP语言概述</div>
	<div class="img">
		<li>PHP是"Hypertext Preprocessor"的首字母缩写，原意为超文本预处理器，是一种开源免费的在服务器上运行的脚本语言，PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页，主要适用于Web开发领域</li>
		<li>PHP是一门面向对象的弱语言</li>
	</div>

	<div class="showimg ltable">PHP语言特点</div>
	<div class="img">
		<li>PHP运行于各种平台（Windows, Linux, Unix, Mac OS X 等等）</li>
		<li>PHP兼容几乎所有服务器（Apache, IIS 等等）</li>
		<li>PHP支持多种数据库</li>
		<li>PHP语法简洁、免费开源</li>
	</div>

	<div class="showimg ltable">PHP语言作用</div>
	<div class="img">
		<li>生成动态页面内容</li>
		<li>能够创建、打开、读取、写入、删除以及关闭服务器上的文件</li>
		<li>接收处理表单数据(nginx等服务器也会处理一部分地址栏参数(重定向等))</li>
		<li>操作cookie，记录session，其中cookie是通过发送header头让客户端设置</li>
		<li>自带加解密数据函数，也有对代码进行编译加密的扩展</li>
	</div>
</ul>

<div class="dt">PHP基本写作规范</div>
<ul>
	<div class="ltable showimg">PHP语言标记</div>
	<div class="img">
		<table>
			<tr>
				<th>标记</th><th>写作</th><th>额外说明</th>
			</tr>
			<tr>
				<td>完整标记</td>
				<td>&lt;?php    ?&gt;</td>
				<td></td>
			</tr>
			<tr>
				<td>短标记标记</td>
				<td>&lt;?    ?&gt;</td>
				<td>需要php.ini中开启open_short_tags</td>
			</tr>
			<tr>
				<td>asp风格标记</td>
				<td>&lt;%   %&gt;</td>
				<td>需要php.ini中开启asp_tags</td>
			</tr>
			<tr>
				<td>脚本风格标记</td>
				<td>&lt;script language='php'&gt;&lt;/script&gt;</td>
				<td>php7.0被废弃</td>
			</tr>
		</table>
		<li>PHP语言中，PHP标记中的代码才会被PHP引擎解析，其他的部分会直接作为文本提交到web服务器，在整个脚本执行完后发送到客户端</li>
		<li>除了这些标记，php还支持&lt;?= ?>标记，等同于&lt;?php echo ?&gt;，该标记在5.4版本之前需要开启短标记，之后则不需要</li>
	</div>
</ul>

<div class="dt">PHP变量</div>
<ul>
	<div class="ltable showimg">概念</div>
	<div class="img">
		<li>变量是一个包含名称和值的标识符，是用来存储数据的容器。在php中变量以“$”标识，由英文字母、数字和下划线组成</li>
	</div>

	<div class="ltable showimg">变量的基本操作</div>
	<div class="img">
		<table>
			<tr>
				<th>操作</th><th>示范</th><th>说明</th>
			</tr>
			<tr>
				<td>声明</td><td> $a ; </td>
				<td>因为php语言标记变量和使用变量都是使用"$"符，所以按照通用语法这个变量确实被声明，但无论使用还是用isset函数检测，这个变量都是未定义</td>
			</tr>
			<tr>
				<td>赋值</td><td> $a=1 ; </td><td></td>
			</tr>
			<tr>
				<td>判断是否存在</td><td> isset($a) ; </td><td></td>
			</tr>
			<tr>
				<td>删除</td><td> unset($a) ; </td><td></td>
			</tr>
		</table>
	</div>
</ul>

<div class="dt">PHP数据类型</div>
<ul>
	<div class="ltable showimg">标量数据类型</div>
	<div class="img">
		<table>
			<tr>
				<th>类型</th><th>说明</th>
			</tr>
			<tr>
				<td>布尔boolean</td>
				<td>仅有两个值。true或false，真或假且不区分大小写</td>
			</tr>
			<tr>
				<td>整型integer</td>
				<td>整型数值</td>
			</tr>
			<tr>
				<td>浮点型float</td>
				<td>含小数或用科学计数法表示的数字</td>
			</tr>
			<tr>
				<td>字符串</td>
				<td>以定界符或引号包括的字符</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">复合数据类型</div>
	<div class="img">
		<table>
			<tr>
				<th>类型</th><th>说明</th>
			</tr>
			<tr>
				<td>数组array</td>
				<td>按key=>value组织的一堆数据的集合</td>
			</tr>
			<tr>
				<td>对象object</td>
				<td>拥有属性和方法的数据集合，是类的实例化，一般用来封装实现某一类功能的一堆方法和该功能用到的一些数据</td>
			</tr>
		</table>
	</div>

	<div class="ltable showimg">特殊类型数据</div>
	<div class="img">
		<table>
			<tr>
				<th>类型</th><th>说明</th>
			</tr>
			<tr>
				<td>null</td>
				<td>表示一个未确定的数据，在PHP中相当于声明数据存在但为空（无任何值）</td>
			</tr>
            <tr>
                <td>资源resource</td>
                <td>一种特殊数据，本质上是一个指向外部资源的引用，可以是打开的文件、连接的数据库等</td>
            </tr>
		</table>
	</div>

	<div class="ltable showimg">单双引号和定界符</div>
	<div class="img">
		<table>
			<tr>
				<th>符号</th><th>说明</th><th>备注</th>
			</tr>
			<tr>
				<td>单引号</td>
				<td>''</td>
				<td>无法进行变量解析、特殊字符解析(能转义转义符)，正因为如此效率最高</td>
			</tr>
			<tr>
				<td>双引号</td>
				<td>""</td>
				<td>双引号会解析其中的特殊字符和变量</td>
			</tr>
			<tr>
				<td>定界符</td>
				<td>以&lt;&lt;&lt;a标记开始以a标记结束的一串字符，标示中间的一串字符为字符串，定界符的开始必须独占一行结束定界符前一个字符必须是换行符</td>
				<td>定界符的解析规则和双引号一致，其完整组成的规范为正则/^<{3}(\w+)\n.*\n\1$/u"的一串字符</td>
			</tr>
		</table>
		<li>其实中文也可以作为定界符的命名字符，所以定界符正式的规范命名字符是由\w规则的unicode模式字符组成</li>
		<li>单双引号都能解析转义符的根本原因是需要在内部转义单双引号，必须引入转义机制，而因为要区分转义符和普通字符转义符，则必须可以解析转义符、转义转义符</li>
		<li>某些资料说定界符内部不解析特殊字符，这是错误的说话，从功能设计上说，定界符最大的好处是内部不需要转义单双引号，专注的是易用性，而不是性能(依据规则其实比双引号还要差)</li>
		<li>javascript语言中单双引号解析上没有任何区分，ES6也引入了定界符“``”，定界符多了解析变量的功能,变量写作${变量名}</li>
	</div>

    <div class="ltable showimg">数据类型相关函数</div>
    <div class="img">
        <table>
            <tr>
                <th>函数</th><th>说明</th><th>参数</th><th>返回值</th>
            </tr>
			<tr>
				<td>get_resource_type</td>
				<td>返回资源型数据的资源类型</td>
				<td>resource资源数据</td>
				<td>字符串，一般为var_dump时展示的结构括号中的描述</td>
			</tr>
        </table>
    </div>
</ul>

<div class="dt">PHP各版本变更</div>
<ul>
	<div class="ltable showimg">PHP5.6更新</div>
	<div class="img">
		<table>
			<tr>
				<th>更新语法</th><th>性质和说明</th>
			</tr>
			<tr>
				<td>隐式使用数字标识符为类定义数组类型的属性时，数组的键不会被覆盖</td>
				<td>修复型更新，之前的版本PHP5.5隐式指定索引数组key不会覆盖原key而在类中数组属性却会覆盖</td>
			</tr>
			<tr>
				<td>严格的json_decode函数</td>
				<td>JSON字面量 true，false 和 null，如果不采用全小写将不会被识别</td>
			</tr>
			<tr>
				<td>GMP 资源现为对象</td>
				<td>GMP扩展函数返回的资源使用is_resource或其他显式检测类型的函数将视为对象</td>
			</tr>
			<tr>
				<td>CURL文件上传严格规范</td>
				<td>CURL文件上传必须设置CURLOPT_SAFE_UPLOAD为FALSE 才能使用@file语法上传文件</td>
			</tr>
			<tr>
				<td>灵活的常量和函数参数默认值</td>
				<td>const设置常量支持运算、使用其他常量、甚至可以是数组类型，函数参数默认值可以使用运算、常量和类常量</td>
			</tr>
			<tr>
				<td>引入连接运算符...，用来更方便地变长函数参数</td>
				<td>可以使用 ... 运算符定义变长参数函数，表示该位置可以传入多个参数，也可以在传入时使用 ...追加数组，将数组每个值作为参数传入</td>
			</tr>
			<tr>
				<td>引入幂运算符</td>
				<td>加入右连接运算符（官网） ** 来进行幂运算。 同时还支持简写的 **= 运算符</td>
			</tr>
		</table>
		<li>连接运算符连接形式参数，相当于将之后的所有参数组装到该数组中，连接实际数组参数，相当于将该数组每个值作为单个参数传入</li>
		<li>define函数设置的常量，值因为是运算后的结果，所以一直支持使用变量常量运算甚至函数调用等，但5.6版本未支持数组，7.0版本才更新支持数组</li>
	</div>
</ul>

<!-- <div class="dt">相关术语</div>
<ul>
	<div class="ltable showimg">php语法结构</div>
	<div class="img">
		<table>
			<tr>
				<th>语法结构</th><th>概念</th><th>组成</th><th>其他说明</th>
			</tr>
			<tr>
				<td>变量</td><td>存储数据的容器，包含名称和值的标识符</td><td>php中以"$"标识，由下划线、数字和英文字母组成的字符</td><td>变量本质是存储在内存存储变量区域的一个标识，指向其存储的数据</td>
			</tr>
		</table>
	</div>
</ul>
 -->
</body>
</html>